home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2001 January / Game.EXE_01_2001.iso / demos / Blade of Darkness / data1.cab / Program_Executable_Files / Lib / Auras.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-11-16  |  8.6 KB  |  231 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import Bladex
  5. import ObjStore
  6. Bladex.CreateTimer('Timer20', 1.0 / 20.0)
  7.  
  8. class AnimateableAura:
  9.     
  10.     def __init__(self, aura, time2live, AuraParams, AuraGradient0 = (), AuraGradient1 = (), AuraGradient2 = (), Active = 1, XtraParam = ()):
  11.         self.ObjId = ObjStore.GetNewId()
  12.         ObjStore.ObjectsStore[self.ObjId] = self
  13.         self.EventList = []
  14.         self.Name = aura.Name
  15.         self.TimerName = 'Timer20'
  16.         self.TimerFrequency = 1.0 / 20.0
  17.         self.AuraParams = AuraParams
  18.         apply(aura.SetAuraParams, self.AuraParams)
  19.         if AuraGradient0:
  20.             self.AuraGradient0 = AuraGradient0
  21.         else:
  22.             self.AuraGradient0 = (0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
  23.         apply(aura.SetAuraGradient, self.AuraGradient0)
  24.         if AuraGradient1:
  25.             self.AuraGradient1 = AuraGradient1
  26.         else:
  27.             self.AuraGradient1 = (1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
  28.         apply(aura.SetAuraGradient, self.AuraGradient1)
  29.         if AuraGradient2:
  30.             self.AuraGradient2 = AuraGradient2
  31.         else:
  32.             self.AuraGradient2 = (2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
  33.         apply(aura.SetAuraGradient, self.AuraGradient2)
  34.         if time2live > 0.0:
  35.             self.DeathTime = Bladex.GetTime() + time2live
  36.         else:
  37.             self.DeathTime = -1.0
  38.         aura.TimerFunc = self.TimerFunc
  39.         aura.SubscribeToList(self.TimerName)
  40.         self.Active = Active
  41.         aura.SetAuraActive(self.Active)
  42.         self.OldXtraParam = self.XtraParam = XtraParam
  43.         if XtraParam:
  44.             exec_string = XtraParam[0] + '=' + str(XtraParam[1])
  45.             exec exec_string
  46.         
  47.  
  48.     
  49.     def __del__(self):
  50.         del ObjStore.ObjectsStore[self.ObjId]
  51.  
  52.     
  53.     def persistent_id(self):
  54.         return self.ObjId
  55.  
  56.     
  57.     def __getstate__(self):
  58.         return (1, self.ObjId, self.EventList, self.Name, self.TimerName, self.TimerFrequency, self.AuraParams, self.AuraGradient0, self.AuraGradient1, self.AuraGradient2, self.DeathTime, self.Active, self.OldXtraParam, self.XtraParam)
  59.  
  60.     
  61.     def __setstate__(self, parm):
  62.         if parm[0] == 1:
  63.             self.ObjId = parm[1]
  64.             ObjStore.ObjectsStore[self.ObjId] = self
  65.             self.EventList = parm[2]
  66.             self.Name = parm[3]
  67.             self.TimerName = parm[4]
  68.             self.TimerFrequency = parm[5]
  69.             self.AuraParams = parm[6]
  70.             self.AuraGradient0 = parm[7]
  71.             self.AuraGradient1 = parm[8]
  72.             self.AuraGradient2 = parm[9]
  73.             self.DeathTime = parm[10]
  74.             self.Active = parm[11]
  75.             self.OldXtraParam = parm[12]
  76.             self.XtraParam = parm[13]
  77.         else:
  78.             print 'AnimateableAura.__setstate__() -> Version mismatch'
  79.             self.ObjId = ObjStore.GetNewId()
  80.             ObjStore.ObjectsStore[self.ObjId] = self
  81.             self.EventList = []
  82.             self.Name = 'Error loading'
  83.             self.TimerName = 'Timer20'
  84.             self.TimerFrequency = 1.0 / 20.0
  85.  
  86.     
  87.     def FirstTime(self, e1, e2):
  88.         if e1[0] < e2[0]:
  89.             return -1
  90.         elif e2[0] > e1[0]:
  91.             return 1
  92.         else:
  93.             return 0
  94.  
  95.     
  96.     def AddEvent(self, time, AuraParams, AuraGradient0 = (), AuraGradient1 = (), AuraGradient2 = (), Active = 1, XtraParam = ()):
  97.         self.EventList.append([
  98.             time,
  99.             AuraParams,
  100.             AuraGradient0,
  101.             AuraGradient1,
  102.             AuraGradient2,
  103.             Active,
  104.             XtraParam])
  105.         self.EventList.sort(self.FirstTime)
  106.  
  107.     
  108.     def TimerFunc(self, obj_name, time):
  109.         if self.DeathTime >= 0.0 and time > self.DeathTime:
  110.             self.EventList = []
  111.             self.Active = 0
  112.             if self.OldXtraParam:
  113.                 exec_string = self.OldXtraParam[0] + '=' + str(self.OldXtraParam[1])
  114.                 exec exec_string
  115.             
  116.             aura = Bladex.GetEntity(self.Name)
  117.             aura.SetAuraActive(0)
  118.             aura.RemoveFromList(self.TimerName)
  119.             aura.SubscribeToList('Pin')
  120.             return None
  121.         elif len(self.EventList) < 1:
  122.             return None
  123.         else:
  124.             (NextTime, AuraParams, AuraGradient0, AuraGradient1, AuraGradient2, Active, XtraParam) = self.EventList[0]
  125.             if time >= NextTime:
  126.                 aura = Bladex.GetEntity(self.Name)
  127.                 self.AuraParams = AuraParams
  128.                 apply(aura.SetAuraParams, self.AuraParams)
  129.                 if AuraGradient0:
  130.                     self.AuraGradient0 = AuraGradient0
  131.                     apply(aura.SetAuraGradient, self.AuraGradient0)
  132.                 
  133.                 if AuraGradient1:
  134.                     self.AuraGradient1 = AuraGradient1
  135.                     apply(aura.SetAuraGradient, self.AuraGradient1)
  136.                 
  137.                 if AuraGradient2:
  138.                     self.AuraGradient2 = AuraGradient2
  139.                     apply(aura.SetAuraGradient, self.AuraGradient2)
  140.                 
  141.                 if Active != self.Active:
  142.                     self.active = Active
  143.                     aura.SetAuraActive(self.Active)
  144.                 
  145.                 if XtraParam:
  146.                     self.XtraParam = XtraParam
  147.                     exec_string = XtraParam[0] + '=' + str(XtraParam[1])
  148.                     exec exec_string
  149.                 
  150.                 (nNextTime, nAuraParams, nAuraGradient0, nAuraGradient1, nAuraGradient2, nActive, nXtraParam) = self.EventList[1]
  151.                 if not AuraParams != nAuraParams and AuraGradient2 != nAuraGradient2 and XtraParam != nXtraParam and AuraGradient0 != nAuraGradient0:
  152.                     pass
  153.                 if not (AuraGradient1 != nAuraGradient1):
  154.                     aura.RemoveFromList(self.TimerName)
  155.                     Bladex.AddScheduledFunc(nNextTime, aura.SubscribeToList, (self.TimerName,))
  156.                 
  157.                 del self.EventList[0]
  158.             else:
  159.                 a = self.TimerFrequency / (self.TimerFrequency + NextTime - time)
  160.                 aura = Bladex.GetEntity(self.Name)
  161.                 (fSize, fAlpha, fIntensity, iFrontFaceCulling, iBackFaceCulling, iAdditive) = self.AuraParams
  162.                 fSize = fSize + (AuraParams[0] - fSize) * a
  163.                 fAlpha = fAlpha + (AuraParams[1] - fAlpha) * a
  164.                 fIntensity = fIntensity + (AuraParams[2] - fIntensity) * a
  165.                 self.AuraParams = (fSize, fAlpha, fIntensity, iFrontFaceCulling, iBackFaceCulling, iAdditive)
  166.                 apply(aura.SetAuraParams, self.AuraParams)
  167.                 if AuraGradient0:
  168.                     (iStage, fR0, fG0, fB0, fA0, fStart, fR1, fG1, fB1, fA1, fEnd) = self.AuraGradient0
  169.                     fR0 = fR0 + (AuraGradient0[1] - fR0) * a
  170.                     fG0 = fG0 + (AuraGradient0[2] - fG0) * a
  171.                     fB0 = fB0 + (AuraGradient0[3] - fB0) * a
  172.                     fA0 = fA0 + (AuraGradient0[4] - fA0) * a
  173.                     fStart = fStart + (AuraGradient0[5] - fStart) * a
  174.                     fR1 = fR1 + (AuraGradient0[6] - fR1) * a
  175.                     fG1 = fG1 + (AuraGradient0[7] - fG1) * a
  176.                     fB1 = fB1 + (AuraGradient0[8] - fB1) * a
  177.                     fA1 = fA1 + (AuraGradient0[9] - fA1) * a
  178.                     fEnd = fEnd + (AuraGradient0[10] - fEnd) * a
  179.                     self.AuraGradient0 = (iStage, fR0, fG0, fB0, fA0, fStart, fR1, fG1, fB1, fA1, fEnd)
  180.                     apply(aura.SetAuraGradient, self.AuraGradient0)
  181.                 
  182.                 if AuraGradient1:
  183.                     (iStage, fR0, fG0, fB0, fA0, fStart, fR1, fG1, fB1, fA1, fEnd) = self.AuraGradient1
  184.                     fR0 = fR0 + (AuraGradient1[1] - fR0) * a
  185.                     fG0 = fG0 + (AuraGradient1[2] - fG0) * a
  186.                     fB0 = fB0 + (AuraGradient1[3] - fB0) * a
  187.                     fA0 = fA0 + (AuraGradient1[4] - fA0) * a
  188.                     fStart = fStart + (AuraGradient1[5] - fStart) * a
  189.                     fR1 = fR1 + (AuraGradient1[6] - fR1) * a
  190.                     fG1 = fG1 + (AuraGradient1[7] - fG1) * a
  191.                     fB1 = fB1 + (AuraGradient1[8] - fB1) * a
  192.                     fA1 = fA1 + (AuraGradient1[9] - fA1) * a
  193.                     fEnd = fEnd + (AuraGradient1[10] - fEnd) * a
  194.                     self.AuraGradient1 = (iStage, fR0, fG0, fB0, fA0, fStart, fR1, fG1, fB1, fA1, fEnd)
  195.                     apply(aura.SetAuraGradient, self.AuraGradient1)
  196.                 
  197.                 if AuraGradient2:
  198.                     (iStage, fR0, fG0, fB0, fA0, fStart, fR1, fG1, fB1, fA1, fEnd) = self.AuraGradient2
  199.                     fR0 = fR0 + (AuraGradient2[1] - fR0) * a
  200.                     fG0 = fG0 + (AuraGradient2[2] - fG0) * a
  201.                     fB0 = fB0 + (AuraGradient2[3] - fB0) * a
  202.                     fA0 = fA0 + (AuraGradient2[4] - fA0) * a
  203.                     fStart = fStart + (AuraGradient2[5] - fStart) * a
  204.                     fR1 = fR1 + (AuraGradient2[6] - fR1) * a
  205.                     fG1 = fG1 + (AuraGradient2[7] - fG1) * a
  206.                     fB1 = fB1 + (AuraGradient2[8] - fB1) * a
  207.                     fA1 = fA1 + (AuraGradient2[9] - fA1) * a
  208.                     fEnd = fEnd + (AuraGradient2[10] - fEnd) * a
  209.                     self.AuraGradient2 = (iStage, fR0, fG0, fB0, fA0, fStart, fR1, fG1, fB1, fA1, fEnd)
  210.                     apply(aura.SetAuraGradient, self.AuraGradient2)
  211.                 
  212.                 if XtraParam:
  213.                     (Param, Value) = self.XtraParam
  214.                     exec_string = Param + '=' + Param + '+(' + str(XtraParam[1]) + '-' + Param + ')*' + str(a)
  215.                     exec exec_string
  216.                     exec_string2 = 'Value=' + Param
  217.                     exec exec_string2
  218.                     self.XtraParam = (Param, Value)
  219.                 
  220.  
  221.  
  222.  
  223. def MakeAura(EntityName, time2live, StartAuraParams, StartAuraGradient0 = (), StartAuraGradient1 = (), StartAuraGradient2 = (), StartActive = 1, XtraParam = ()):
  224.     me = Bladex.GetEntity(EntityName)
  225.     pos = me.Position
  226.     aura = Bladex.CreateEntity(EntityName + '_Aura', 'Entity Aura', pos[0], pos[1], pos[2])
  227.     me.Link(aura)
  228.     aura.Data = AnimateableAura(aura, time2live, StartAuraParams, StartAuraGradient0, StartAuraGradient1, StartAuraGradient2, StartActive, XtraParam)
  229.     return aura
  230.  
  231.